package com.mtons.mblog.base.model.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 线程控制锁 参数key
 * @author qiyunhao
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CacheThreadArg {

    /**
     * key的前缀
     * @return
     */
    String prefix() default "";

    /**
     * 通过注解所在参数生成的唯一key
     * @return
     */
    String[] argKey() default {};

    /**
     * 允许通过线程的数量
     * @return
     */
    String number() default "";

    /**
     * 提示信息
     * @return
     */
    String reminder() default "";

    /**
     * 超时时间
     * @return
     */
    long timeout() default 10L;

    /**
     * 超时时间单位
     * @return
     */
    TimeUnit timeUnit() default TimeUnit.MINUTES;

}
